package Lee_code;

/**
 * @author blh
 * @date 2024年07月10日 16:49
 */
public class Lee_50_710 {
    public double myPow(double x, int n) {
        if (n == 0) {
            return 1.0;
        } else if (x == 1.0) {
            return 1.0;
        } else if (n > 0) {
            double temp = x;
            for (int i = 0; i < n - 1; i++) {
                x = x * temp;
            }
            return x;
        } else {
            double temp = x;
            for (int i = 0; i < Math.abs(n) - 1; i++) {
                x = x * temp;
            }
            return 1.0 / x;
        }
    }

    double fastMulti(double x, int n) {
        if (n == 0) {
            return 1.0;
        }
        double y = fastMulti(x, n / 2);
        if (n % 2 == 1) {
            return y * y * x;
        } else if (n % 2 == 0) {
            return y * y;
        }
        return 0;
    }

}
